function unique(arr) {
    // 声明一个空数组
    const result = [];

    // 遍历数组
    for (let i = 0; i < arr.length; i++) {
        // 判断数组中是否存在当前元素
        if (result.indexOf(arr[i]) === -1) {
            result.push(arr[i]);
        }
    }

    return result;
}

function unique2(arr) {
    const result = [];
    const obj = {};

    // 遍历数组
    arr.forEach(item => {
        // 将item作为下标存储在obj中
        // 如果obj中不存在item，则将item存储在obj中
        if (!obj[item]) {
            obj[item] = true;
            result.push(item);
        }
    })

    return result;
}

function unique3(arr) {
    // 将数组转换为Set对象
    const set = new Set(arr);

    // 将Set对象转换为数组
    return [...set];
}